package com.bestcem.xm.openplatform.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bestcem.xm.component.mybatis.service.IXmService;
import com.bestcem.xm.openplatform.controller.vo.*;
import com.bestcem.xm.openplatform.entity.*;
import springfox.documentation.annotations.ApiIgnore;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

public interface OpenplatformExtparamService extends IXmService<OpenplatformExtparam> {

    OpenplatformExtparamVo getOpenplatformExtparamById(String extparamId);

    List<OpenplatformExtparamVo> getOpenplatformExtparamList(HttpServletRequest request);

    OpenplatformExtparamPageVo getOpenplatformExtparamPage(@ApiIgnore Page<OpenplatformExtparam> page, HttpServletRequest request);

    Map<String, String> postOpenplatformExtparam(JSONObject param);

    Map<String, String> putOpenplatformExtparam(String extparamId, JSONObject param);

    Map<String, Integer> deleteOpenplatformExtparam(String extparamId);

    Map<String, Object> checkOpenplatformExtparam(String extparamId);

    OpenplatformEncryptionconfig getEncryptionConfigsById(String id);

    List<OpenplatformEncryptionconfig> getEncryptionConfigsList(HttpServletRequest args);

    OpenplatformEncryptionconfigPageVo getEncryptionConfigsPage(@ApiIgnore Page<OpenplatformEncryptionconfig> page, HttpServletRequest args);

    Map<String, String> postSystemManages(JSONObject param);

    Map<String, String> putSystemManages(String id, JSONObject param);

    OpenplatformSystemmanage getSystemManagesById(String id);

    List<OpenplatformSystemmanage> getSystemManagesList(String orgId);

    OpenplatformSystemmanagePageVo getSystemManagesPage(@ApiIgnore Page<OpenplatformSystemmanage> page, String orgId);

    Map<String, Integer> deleteSystemmanages(String id);

    Map<String, String> postConditionmanages(JSONObject param);

    OpenplatformConditionmanage getConditionmanagesById(String id);

    List<OpenplatformConditionmanage> getConditionmanagesList(String orgId);

    OpenplatformConditionmanagesPageVo getConditionmanagesPage(@ApiIgnore Page<OpenplatformConditionmanage> page, String orgId);

    Map<String, String> putConditionmanages(String id, JSONObject param);

    Map<String, Integer> deleteConditionmanages(String id);

    List<OpenplatformExtparam> postExtparam(JSONObject param);

    List<OpenplatformExtparamenummanage> postExtparamenum(JSONObject param);

    Map<String, Object> getSystemconditionCheck(HttpServletRequest request);

    OpenplatformFunctionoption getFunctionoptionsById(String id);

    List<OpenplatformFunctionoption> getFunctionoptionsList(HttpServletRequest request);

    OpenplatformFunctionoptionsPageVo getFunctionoptionsPage(@ApiIgnore Page<OpenplatformFunctionoption> page, HttpServletRequest request);

    void initOrgAesKey();
}
